/* 
 * All threads in the team will attempt to execute in parallel, 
 * however, because of the CRITICAL construct surrounding the increment of x, 
 * only one thread will be able to read/increment/write x at any time
 * Усі потоки групи будуть намагатись виконуватись паралельно,
 * але, оскільки, використана конструктція critical, 
 * яка оточує операцію інкрементування змінної x,
 * лише один потік зможе зчитувати/інкрементувати/записувати x 
 * у будь-який момент часу
*/
#include <omp.h>

main()
{

int x;
x = 0;

#pragma omp parallel shared(x) 
  {

  #pragma omp critical 
  x = x + 1;

  }  /* end of parallel section */

}
